package cn.mothin.frame.core.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 软件模块属性注释 id、name必输入，模块类型，默认为顶级模块
 * 
 * @author zhoush
 * 
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(value = { ElementType.TYPE })
public @interface Module {
	public static final class NULL_TARGET {
	};

	/**
	 * UUID,唯一标识符
	 * 
	 * @return
	 */
	public String id();

	/**
	 * 功能模块名称
	 * 
	 * @return
	 */
	public String name();

	/**
	 * 显示的ICO的地址（相对于根目录），默认""
	 * 
	 * @return
	 */
	public String ico() default "";

	/**
	 * 备注说明，默认""
	 * 
	 * @return
	 */
	public String memo() default "";

	/**
	 * 默认执行方法，默认为execute
	 * 
	 * @return
	 */
	public String defaultFunctionName() default "execute";
	/**
	 * 隶属对象Id
	 * 
	 * @return
	 */
	public Class<?> belong() default NULL_TARGET.class;
}
